package net.plentz.tagger.data;

public class FieldData {

	public static enum Id3v2Field {

		APIC("Artwork"),
		COMM("Comments"),
		TALB("Album"),
		TBPM("BPM"),
		TCOM("Composer"),
		TCON("Content Type"),
		TCOP("Copyright"),
		/** Specific to v2.3 */
		TDAT("Date"),
		/** Specific to v2.4 */
		TDEN("Encoding Time"),
		/** Specific to v2.4 */
		TDOR("Original Release"),
		TDLY("Playlist Delay"),
		/** Specific to v2.4 */
		TDRC("Recording Time"),
		/** Specific to v2.4 */
		TDRL("Release Time"),
		/** Specific to v2.4 */
		TDTG("Tagging Time"),
		TENC("Encoder"),
		TEXT("Lyricist"),
		TFLT("File Type"),
		/** Specific to v2.3 */
		TIME("Time"),
		/** Specific to v2.4 */
		TIPL("Involved People"),
		TIT1("Content Group"),
		TIT2("Title"),
		TIT3("Subtitle"),
		TKEY("Initial Key"),
		TLAN("Language"),
		TLEN("Length"),
		/** Specific to v2.4 */
		TMCL("Musician Credits"),
		TMED("Media Type"),
		/** Specific to v2.4 */
		TMOO("Mood"),
		TOAL("Original Album"),
		TOFN("Original Filename"),
		TOLY("Original Lyricist"),
		TOPE("Original Artist"),
		/** Specific to v2.3 */
		TORY("Original Release Year"),
		TOWN("Owner"),
		TPE1("Artist"),
		TPE2("Album Artist"),
		TPE3("Conductor"),
		TPE4("Remixer"),
		TPOS("Part of a Set"),
		/** Specific to v2.4 */
		TPRO("Produced Notice"),
		TPUB("Publisher"),
		TRCK("Track"),
		/** Specific to v2.3 */
		TRDA("Recording Dates"),
		TRSN("Internet Radio Station Name"),
		TRSO("Internet Radio Station Owner"),
		/** Specific to v2.3 */
		TSIZ("Size"),
		/** Specific to v2.4 */
		TSOA("Album Sort"),
		/** Specific to v2.4 */
		TSOP("Performer Sort"),
		/** Specific to v2.4 */
		TSOT("Title Sort"),
		TSRC("ISRC"),
		TSSE("Encoding Software"),
		/** Specific to v2.4 */
		TSST("Set Subtitle"),
		/** Specific to v2.3 */
		TYER("Year");

		private String name;

		private Id3v2Field(String name) {
			this.name = name;
		}

		public String getName() {
			return this.name;
		}

	}

	public static enum Genre {

		BLUES(0, "Blues"),
		CLASSICROCK(1, "Classic Rock"),
		COUNTRY(2, "Country"),
		DANCE(3, "Dance"),
		DISCO(4, "Disco"),
		FUNK(5, "Funk"),
		GRUNGE(6, "Grunge"),
		HIPHOP(7, "Hip-Hop"),
		JAZZ(8, "Jazz"),
		METAL(9, "Metal"),
		NEWAGE(10, "New Age"),
		OLDIES(11, "Oldies"),
		OTHER(12, "Other"),
		POP(13, "Pop"),
		RNB(14, "R&B"),
		RAP(15, "Rap"),
		REGGAE(16, "Reggae"),
		ROCK(17, "Rock"),
		TECHNO(18, "Techno"),
		INDUSTRIAL(19, "Industrial"),
		ALTERNATIVE(20, "Alternative"),
		SKA(21, "Ska"),
		DEATHMETAL(22, "Death Metal"),
		PRANKS(23, "Pranks"),
		SOUNDTRACK(24, "Soundtrack"),
		EUROTECHNO(25, "Euro-Techno"),
		AMBIENT(26, "Ambient"),
		TRIPHOP(27, "Trip-Hop"),
		VOCAL(28, "Vocal"),
		JAZZFUNK(29, "Jazz+Funk"),
		FUSION(30, "Fusion"),
		TRANCE(31, "Trance"),
		CLASSICAL(32, "Classical"),
		INSTRUMENTAL(33, "Instrumental"),
		ACID(34, "Acid"),
		HOUSE(35, "House"),
		GAME(36, "Game"),
		SOUNDCLIP(37, "Sound Clip"),
		GOSPEL(38, "Gospel"),
		NOISE(39, "Noise"),
		ALTERNATIVEROCK(40, "AlternRock"),
		BASS(41, "Bass"),
		SOUL(42, "Soul"),
		PUNK(43, "Punk"),
		SPACE(44, "Space"),
		MEDITATIVE(45, "Meditative"),
		INSTRUMENTALPOP(46, "Instrumental Pop"),
		INSTRUMENTALROCK(47, "Instrumental Rock"),
		ETHNIC(48, "Ethnic"),
		GOTHIC(49, "Gothic"),
		DARKWAVE(50, "Darkwave"),
		TECHNOINDUSTRIAL(51, "Techno-Industrial"),
		ELECTRONIC(52, "Electronic"),
		POPFOLK(53, "Pop-Folk"),
		EURODANCE(54, "Eurodance"),
		DREAM(55, "Dream"),
		SOUTHERNROCK(56, "Southern Rock"),
		COMEDY(57, "Comedy"),
		CULT(58, "Cult"),
		GANGSTA(59, "Gangsta"),
		TOP40(60, "Top 40"),
		CHRISTIANRAP(61, "Christian Rap"),
		POPFUNK(62, "Pop/Funk"),
		JUNGLE(63, "Jungle"),
		NATIVEAMERICAN(64, "Native American"),
		CABARET(65, "Cabaret"),
		NEWWAVE(66, "New Wave"),
		PSYCHADELIC(67, "Psychadelic"),
		RAVE(68, "Rave"),
		SHOWTUNES(69, "Showtunes"),
		TRAILER(70, "Trailer"),
		LOWFI(71, "Lo-Fi"),
		TRIBAL(72, "Tribal"),
		ACIDPUNK(73, "Acid Punk"),
		ACIDJAZZ(74, "Acid Jazz"),
		POLKA(75, "Polka"),
		RETRO(76, "Retro"),
		MUSICAL(77, "Musical"),
		ROCKNROLL(78, "Rock & Roll"),
		HARDROCK(79, "Hard Rock"),
		FOLK(80, "Folk"),
		FOLKROCK(81, "Folk-Rock"),
		NATIONALFOLK(82, "National Folk"),
		SWING(83, "Swing"),
		FASTFUSION(84, "Fast Fusion"),
		BEBOB(85, "Bebob"),
		LATIN(86, "Latin"),
		REVIVAL(87, "Revival"),
		CELTIC(88, "Celtic"),
		BLUEGRASS(89, "Bluegrass"),
		AVANTGARDE(90, "Avantgarde"),
		GOTHICROCK(91, "Gothic Rock"),
		PROGRESSIVEROCK(92, "Progressive Rock"),
		PSYCHEDELICROCK(93, "Psychedelic Rock"),
		SYMPHONICROCK(94, "Symphonic Rock"),
		SLOWROCK(95, "Slow Rock"),
		BIGBAND(96, "Big Band"),
		CHORUS(97, "Chorus"),
		EASYLISTENING(98, "Easy Listening"),
		ACOUSTIC(99, "Acoustic"),
		HUMOUR(100, "Humour"),
		SPEECH(101, "Speech"),
		CHANSON(102, "Chanson"),
		OPERA(103, "Opera"),
		CHAMBERMUSIC(104, "Chamber Music"),
		SONATA(105, "Sonata"),
		SYMPHONY(106, "Symphony"),
		BOOTYBASS(107, "Booty Bass"),
		PRIMUS(108, "Primus"),
		PORNGROOVE(109, "Porn Groove"),
		SATIRE(110, "Satire"),
		SLOWJAM(111, "Slow Jam"),
		CLUB(112, "Club"),
		TANGO(113, "Tango"),
		SAMBA(114, "Samba"),
		FOLKLORE(115, "Folklore"),
		BALLAD(116, "Ballad"),
		POWERBALLAD(117, "Power Ballad"),
		RHYTHMICSOUL(118, "Rhythmic Soul"),
		FREESTYLE(119, "Freestyle"),
		DUET(120, "Duet"),
		PUNKROCK(121, "Punk Rock"),
		DRUMSOLO(122, "Drum Solo"),
		ACAPELLA(123, "A capella"),
		EUROHOUSE(124, "Euro-House"),
		DANCEHALL(125, "Dance Hall");

		private int id;
		private String name;

		private Genre(int id, String name) {
			this.id = id;
			this.name = name;
		}

		public int getID() {
			return this.id;
		}

		public String getName() {
			return this.name;
		}

	}

}
